在程式入門的討論社團中有一種類型的年經文,像是:
我想答案是: 就算你不會資料結構,你也寫得出程式。不過,如果你注重程式的執行效率的話,資料結構絕對是必備的知識之一!
開設資料結構的老師與第三天提到的 UCOMP 微算機實習的老師是同一人 (也就是我的恩師)。
這門課是採英文授課的,整個學期要教完所有基礎的資料結構,所以課程算是相當緊湊。
那一學期老師一共上了:
題外話: 因為老師選用的課本是演算法聖經,所以簡單的演算法都有提到,到我三下修了計算機演算法時,除了 Dynamic programming 是老師當時沒有提到的以外,其他都被他給講完了 XD
不過說到這邊,沒有資料結構基礎的同學可能也還是不明白它的重要性,資料結構的概念就非常像是教你怎麼安排教室的桌椅,如果教室是:
這樣坐在中間位子的同學就非常不方便入座,但是可以容納很多人。
因為空間非常大,所以學生要回座位非常輕鬆,但是會浪費大量的空間,而且同學會聊天。
就像是一般國中小那樣,空間使用率跟回座位的方便性都屬於一般般,可以算是折衷的作法。
至於演算法,就有點像是座位分配的機制:
每個排法都有它的優缺點,這就是演算法的魅力所在。
不知道從什麼時候開始,科技公司非常喜歡在面試時考驗工程師的解題能力。
如果要在最快時間內以最佳的辦法處理掉題目的需求,資料結構與演算法幾乎是必備的技能。
但我本人其實非常討厭刷題,因為我覺得為了刷題而寫程式還蠻沒意義的,所以我一直都對這塊興致缺缺。
是說交大資工所也會要求學生要在 CPE 中解出至少三題,所以為了畢業證書,我之後也得乖乖刷題了 XD